<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>解构/赋值</title>
</head>
<body>
    <script>
    {
        let arr=[1,2,3];
    //   let [a,b,c]=arr;
    let [a,b,c]=[1,2,3];
    console.log(a,b,c)

    // var a=1;
    // var b=2;
    // var c=3;



    let obj={name:'zs',age:20};
    let {name,age}=obj;
    console.log(name,age);


    [name,age,[a,b,[c,d]],,,,ccc]=['zs',100,[1,2,[,0]],5,2,1,9];


    console.log(c);
    console.log(ccc);
    }

    // 条件满足就可以解构
    //1 左右结构一样
    //2  右边要是一个不报错的代码  是一个正常的东西




    // function fn(arr){
    //     console.log(arr)

    // }


    // fn(1,2,3);

    //... 热磁参数  剩余参数  一般跟解构赋值一起使用


    //   function fn(...arr){   // 收集所有的参数
    //     console.log(arr)

    // }


    // fn(1,2,3,4,5,6);



//     let  arr1=[1.2,3];
//     let  arr2=['大人','客官','请开始你们的表演'];
//     // let arr3=[];
//     //方法一
//     //  let  arr3=arr1.concat(arr2);
//     //  console.log(arr3);
//    //方法二 
//    let arr3=[...arr1,...arr2];  //展开参数  
//  console.log(arr3)






//唯一注意的位置 如果是函数的形参 需要进行解构或者收集 只能放在最后
// function  fn(a,b,...arr){
//     console.log(a)
//     console.log(arr)
//     console.log(b)
// }

// fn(1,2,3,4,5);





{
    let a=1;
    let b=2;

    console.log(a);
    console.log(b);
     [a,b]=[b,a];  //冒泡排序 算法
console.log('------------------------------------')
      console.log(a);
      console.log(b)
}













 

    </script>
</body>
</html>